#!/bin/bash

# 基于Qwen2.5-VL的视频分析系统启动脚本

echo "🚀 启动基于Qwen2.5-VL的视频分析系统"
echo "=================================="

# 检查Python环境
if ! command -v python3 &> /dev/null; then
    echo "❌ Python3 未安装，请先安装Python 3.11+"
    exit 1
fi

# 检查GPU
if ! command -v nvidia-smi &> /dev/null; then
    echo "⚠️  警告: 未检测到NVIDIA GPU，模型推理可能较慢"
else
    echo "✅ 检测到NVIDIA GPU"
    nvidia-smi --query-gpu=name,memory.total --format=csv,noheader
fi

# 创建虚拟环境（如果不存在）
if [ ! -d "venv" ]; then
    echo "📦 创建Python虚拟环境..."
    python3 -m venv venv
fi

# 激活虚拟环境
echo "🔧 激活虚拟环境..."
source venv/bin/activate

# 安装依赖
echo "📥 安装Python依赖..."
pip install -r requirements.txt

# 检查模型服务
echo "🔍 检查模型服务状态..."
if curl -s http://localhost:8001/health > /dev/null 2>&1; then
    echo "✅ 模型服务已运行"
else
    echo "⚠️  模型服务未运行，请先启动模型服务:"
    echo "   vllm serve Qwen/Qwen2.5-VL-7B-Instruct --limit-mm-per-prompt image=4 --port 8001"
    echo ""
    echo "🚀 正在启动模型服务..."
    
    # 后台启动模型服务
    nohup vllm serve Qwen/Qwen2.5-VL-7B-Instruct --limit-mm-per-prompt image=4 --port 8001 > model.log 2>&1 &
    
    echo "⏳ 等待模型服务启动..."
    sleep 30
    
    # 检查模型服务是否启动成功
    for i in {1..12}; do
        if curl -s http://localhost:8001/health > /dev/null 2>&1; then
            echo "✅ 模型服务启动成功"
            break
        else
            echo "⏳ 等待模型服务启动... ($i/12)"
            sleep 10
        fi
    done
fi

# 启动Web应用
echo "🌐 启动Web应用..."
echo "📱 应用将在 http://localhost:8000 启动"
echo "🛑 按 Ctrl+C 停止服务"
echo ""

# 启动FastAPI应用
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
